<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Irrlicht 3D Engine: irrMath.h File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="irrlichtlogo.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Irrlicht 3D Engine
   
   </div>
   
  </td>
  
  
  
   
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
   
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="dynsections.js"></script>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('irr_math_8h.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">irrMath.h File Reference</div>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_irr_compile_config_8h_source.html">IrrCompileConfig.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="irr_types_8h_source.html">irrTypes.h</a>&quot;</code><br/>
<code>#include &lt;math.h&gt;</code><br/>
<code>#include &lt;float.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;limits.h&gt;</code><br/>
</div>
<p><a href="irr_math_8h_source.html">Go to the source code of this file.</a></p>
<h2><a name="nested-classes"></a>
Classes</h2>
<ul>
<li>union <a class="el" href="unionirr_1_1core_1_1_float_int_union32.html">irr::core::FloatIntUnion32</a>
<li>union <a class="el" href="unionirr_1_1core_1_1inttofloat.html">irr::core::inttofloat</a>
</ul>
<h2><a name="namespaces"></a>
Namespaces</h2>
<ul>
<li>namespace <a class="el" href="namespaceirr.html">irr</a>
<dl class="el"><dd class="mdescRight"><p>Everything in the Irrlicht Engine can be found in this namespace. </p>
<br/></dl><li>namespace <a class="el" href="namespaceirr_1_1core.html">irr::core</a>
<dl class="el"><dd class="mdescRight"><p>Basic classes such as vectors, planes, arrays, lists, and so on can be found in this namespace. </p>
<br/></dl></ul>
<h2><a name="define-members"></a>
Defines</h2>
<ul>
<li>#define <a class="el" href="irr_math_8h.html#aa854d8430e0acc31adb1ddb3647f6534">AIR</a>(x)&#160;&#160;&#160;(IR(x)&amp;0x7fffffff)
<dl class="el"><dd class="mdescRight">Absolute integer representation of a floating-point value.  <a href="#aa854d8430e0acc31adb1ddb3647f6534"></a><br/></dl><li>#define <a class="el" href="irr_math_8h.html#ab4092d1d22af18e03372117e347b633c">F32_A_GREATER_B</a>(a, b)&#160;&#160;&#160;((a) &gt; (b))
<li>#define <a class="el" href="irr_math_8h.html#afc4f1a86cb2a79c560b29ee5edd0f94d">F32_AS_S32</a>(f)&#160;&#160;&#160;(*((s32 *) &amp;(f)))
<li>#define <a class="el" href="irr_math_8h.html#afdeb4b30296d2b1dccec72427bdb39f2">F32_AS_U32</a>(f)&#160;&#160;&#160;(*((u32 *) &amp;(f)))
<li>#define <a class="el" href="irr_math_8h.html#ab5498fea750901e87dfeca4e27425f16">F32_AS_U32_POINTER</a>(f)&#160;&#160;&#160;( ((u32 *) &amp;(f)))
<li>#define <a class="el" href="irr_math_8h.html#a3c82a09fb606a67c19514b534d364d6c">F32_EQUAL_0</a>(n)&#160;&#160;&#160;((n) == 0.0f)
<li>#define <a class="el" href="irr_math_8h.html#ae907baf637203996fb3187581c2def80">F32_EQUAL_1</a>(n)&#160;&#160;&#160;((n) == 1.0f)
<li>#define <a class="el" href="irr_math_8h.html#a94abc82f2a2794c8331c9dad9a06958b">F32_EXPON_MANTISSA</a>&#160;&#160;&#160;0x7FFFFFFFU
<li>#define <a class="el" href="irr_math_8h.html#a2fdc9e94ce29e1866ddf64e5903d43a1">F32_GREATER_0</a>(n)&#160;&#160;&#160;((n) &gt;  0.0f)
<li>#define <a class="el" href="irr_math_8h.html#a407afe61680cc405bbe04922d36423af">F32_GREATER_EQUAL_0</a>(n)&#160;&#160;&#160;((n) &gt;= 0.0f)
<li>#define <a class="el" href="irr_math_8h.html#aa86a7d03858f88ebbf9e36592583ced6">F32_LOWER_0</a>(n)&#160;&#160;&#160;((n) &lt;  0.0f)
<li>#define <a class="el" href="irr_math_8h.html#a26bc42a9cc1fc775bc588052c32ff9a0">F32_LOWER_EQUAL_0</a>(n)&#160;&#160;&#160;((n) &lt;= 0.0f)
<li>#define <a class="el" href="irr_math_8h.html#a58566d4b084b3c9740b3215cf7a607bb">F32_SIGN_BIT</a>&#160;&#160;&#160;0x80000000U
<li>#define <a class="el" href="irr_math_8h.html#aff2ace8fbd4b2ee6833ae0ed8dd9469a">F32_VALUE_0</a>&#160;&#160;&#160;0x00000000
<li>#define <a class="el" href="irr_math_8h.html#a93465b810662025b38f42244b100fc2e">F32_VALUE_1</a>&#160;&#160;&#160;0x3f800000
<li>#define <a class="el" href="irr_math_8h.html#a7fbf1534f9e0f0bfdb86fb928902474c">FLT_MAX</a>&#160;&#160;&#160;3.402823466E+38F
<li>#define <a class="el" href="irr_math_8h.html#a890322b63a2fab56b8ff916c08368df6">FLT_MIN</a>&#160;&#160;&#160;1.17549435e-38F
<li>#define <a class="el" href="irr_math_8h.html#a3ec4980c07f6b510c61230356e014d24">IEEE_1_0</a>&#160;&#160;&#160;0x3f800000
<dl class="el"><dd class="mdescRight">integer representation of 1.0  <a href="#a3ec4980c07f6b510c61230356e014d24"></a><br/></dl><li>#define <a class="el" href="irr_math_8h.html#a2b311316554140ac181c31d86f4f3786">IEEE_255_0</a>&#160;&#160;&#160;0x437f0000
<dl class="el"><dd class="mdescRight">integer representation of 255.0  <a href="#a2b311316554140ac181c31d86f4f3786"></a><br/></dl><li>#define <a class="el" href="irr_math_8h.html#a3695e51e0a187a6c49684ba3206b0d0a">REALINLINE</a>&#160;&#160;&#160;inline
</ul>
<h2><a name="func-members"></a>
Functions</h2>
<ul>
<li>template&lt;class T &gt; T <a class="el" href="namespaceirr_1_1core.html#a2cab2ba5899c9262ca29501ea7551c91">irr::core::abs_</a> (const T &amp;a)
<dl class="el"><dd class="mdescRight">returns abs of two values. Own implementation to get rid of STL (VS6 problems)  <a href="#a2cab2ba5899c9262ca29501ea7551c91"></a><br/></dl><li>REALINLINE s32 <a class="el" href="namespaceirr_1_1core.html#a0fb8b4d0f177af411fdd4bd94b6779ce">irr::core::ceil32</a> (f32 x)
<li>template&lt;class T &gt; const T <a class="el" href="namespaceirr_1_1core.html#a6162f685b68f629e77336081d3316969">irr::core::clamp</a> (const T &amp;value, const T &amp;low, const T &amp;high)
<dl class="el"><dd class="mdescRight">clamps a value between low and high  <a href="#a6162f685b68f629e77336081d3316969"></a><br/></dl><li>REALINLINE void <a class="el" href="namespaceirr_1_1core.html#ab4c17ceae6e2b96383e842eabb9596ab">irr::core::clearFPUException</a> ()
<li>f32 <a class="el" href="namespaceirr_1_1core.html#ad58b3d0e755a4f25ad19d5f5d4fb0280">irr::core::degToRad</a> (f32 degrees)
<dl class="el"><dd class="mdescRight">Utility function to convert a degrees value to radians.  <a href="#ad58b3d0e755a4f25ad19d5f5d4fb0280"></a><br/></dl><li>f64 <a class="el" href="namespaceirr_1_1core.html#a2def535b4f391ceb86ec0497cbb4bf80">irr::core::degToRad</a> (f64 degrees)
<dl class="el"><dd class="mdescRight">Utility function to convert a degrees value to radians.  <a href="#a2def535b4f391ceb86ec0497cbb4bf80"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#abf9b9b140cc365908ea4c8c47451e4e3">irr::core::equals</a> (const f64 a, const f64 b, const f64 tolerance=ROUNDING_ERROR_f64)
<dl class="el"><dd class="mdescRight">returns if a equals b, taking possible rounding errors into account  <a href="#abf9b9b140cc365908ea4c8c47451e4e3"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#ae9c63fd2065e6afd30b4537166706ddf">irr::core::equals</a> (const f32 a, const f32 b, const f32 tolerance=ROUNDING_ERROR_f32)
<dl class="el"><dd class="mdescRight">returns if a equals b, taking possible rounding errors into account  <a href="#ae9c63fd2065e6afd30b4537166706ddf"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#afe4784d5bf091acce7777c40c4010ff8">irr::core::equals</a> (const s32 a, const s32 b, const s32 tolerance=ROUNDING_ERROR_S32)
<dl class="el"><dd class="mdescRight">returns if a equals b, taking an explicit rounding tolerance into account  <a href="#afe4784d5bf091acce7777c40c4010ff8"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#a9a54aa08fdc2119258ad8dfa44f8dadf">irr::core::equals</a> (const u32 a, const u32 b, const s32 tolerance=ROUNDING_ERROR_S32)
<dl class="el"><dd class="mdescRight">returns if a equals b, taking an explicit rounding tolerance into account  <a href="#a9a54aa08fdc2119258ad8dfa44f8dadf"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#a7928ce8e86ff93d918b0c144efab7b47">irr::core::equals</a> (const s64 a, const s64 b, const s64 tolerance=ROUNDING_ERROR_S64)
<dl class="el"><dd class="mdescRight">returns if a equals b, taking an explicit rounding tolerance into account  <a href="#a7928ce8e86ff93d918b0c144efab7b47"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#a730a85283e04b33debcf3b755e5b7603">irr::core::equalsByUlp</a> (f32 a, f32 b, int maxUlpDiff)
<dl class="el"><dd class="mdescRight">We compare the difference in ULP's (spacing between floating-point numbers, aka ULP=1 means there exists no float between).  <a href="#a730a85283e04b33debcf3b755e5b7603"></a><br/></dl><li>f32 <a class="el" href="namespaceirr_1_1core.html#a944684da42c3118ebe85ec9c3f77c331">irr::core::f32_max3</a> (const f32 a, const f32 b, const f32 c)
<li>f32 <a class="el" href="namespaceirr_1_1core.html#a8d7bec533c867b22d0e870236ecf4bad">irr::core::f32_min3</a> (const f32 a, const f32 b, const f32 c)
<li>REALINLINE s32 <a class="el" href="namespaceirr_1_1core.html#ac230a392b15e3d27c6e2a07a6925a8c4">irr::core::floor32</a> (f32 x)
<li>f32 <a class="el" href="namespaceirr_1_1core.html#ae0940bd4032e5f10cf83b460f73571a3">irr::core::FR</a> (u32 x)
<dl class="el"><dd class="mdescRight">Floating-point representation of an integer value.  <a href="#ae0940bd4032e5f10cf83b460f73571a3"></a><br/></dl><li>f32 <a class="el" href="namespaceirr_1_1core.html#a10bf7ddf910b7feac9a36fd141a9f5ba">irr::core::FR</a> (s32 x)
<li>f32 <a class="el" href="namespaceirr_1_1core.html#adf530866e57502da85e6a1f0c23932a2">irr::core::fract</a> (f32 x)
<li>REALINLINE u32 <a class="el" href="namespaceirr_1_1core.html#af19c13d0084052f12357308c0cd83005">irr::core::if_c_a_else_0</a> (const s32 condition, const u32 a)
<dl class="el"><dd class="mdescRight">conditional set based on mask and arithmetic shift  <a href="#af19c13d0084052f12357308c0cd83005"></a><br/></dl><li>REALINLINE u32 <a class="el" href="namespaceirr_1_1core.html#ad6426246733e5dc16713f43352d85cdb">irr::core::if_c_a_else_b</a> (const s32 condition, const u32 a, const u32 b)
<dl class="el"><dd class="mdescRight">conditional set based on mask and arithmetic shift  <a href="#ad6426246733e5dc16713f43352d85cdb"></a><br/></dl><li>REALINLINE u16 <a class="el" href="namespaceirr_1_1core.html#af1ec8eb919fdb81c259920cce4004329">irr::core::if_c_a_else_b</a> (const s16 condition, const u16 a, const u16 b)
<dl class="el"><dd class="mdescRight">conditional set based on mask and arithmetic shift  <a href="#af1ec8eb919fdb81c259920cce4004329"></a><br/></dl><li>u32 <a class="el" href="namespaceirr_1_1core.html#aff42ea2c4d80cb7b45b71d1f63c6a226">irr::core::IR</a> (f32 x)
<li>bool <a class="el" href="namespaceirr_1_1core.html#a6e179d6dd92b81607f0539329dc2410a">irr::core::isnotzero</a> (const f32 a, const f32 tolerance=ROUNDING_ERROR_f32)
<dl class="el"><dd class="mdescRight">returns if a equals not zero, taking rounding errors into account  <a href="#a6e179d6dd92b81607f0539329dc2410a"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#afc24e6ba26469ec7ca7001ed272dc3b2">irr::core::iszero</a> (const f64 a, const f64 tolerance=ROUNDING_ERROR_f64)
<dl class="el"><dd class="mdescRight">returns if a equals zero, taking rounding errors into account  <a href="#afc24e6ba26469ec7ca7001ed272dc3b2"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#aaf94a81169679083a48f9f9e6dced684">irr::core::iszero</a> (const f32 a, const f32 tolerance=ROUNDING_ERROR_f32)
<dl class="el"><dd class="mdescRight">returns if a equals zero, taking rounding errors into account  <a href="#aaf94a81169679083a48f9f9e6dced684"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#a3842b13dc7bd40f068cc8f7fd91bcfa5">irr::core::iszero</a> (const s32 a, const s32 tolerance=0)
<dl class="el"><dd class="mdescRight">returns if a equals zero, taking rounding errors into account  <a href="#a3842b13dc7bd40f068cc8f7fd91bcfa5"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#afa64d4495f986ec0fa840e61cba45c68">irr::core::iszero</a> (const u32 a, const u32 tolerance=0)
<dl class="el"><dd class="mdescRight">returns if a equals zero, taking rounding errors into account  <a href="#afa64d4495f986ec0fa840e61cba45c68"></a><br/></dl><li>bool <a class="el" href="namespaceirr_1_1core.html#a418bebacbef432fcf909e8f3d9b8368d">irr::core::iszero</a> (const s64 a, const s64 tolerance=0)
<dl class="el"><dd class="mdescRight">returns if a equals zero, taking rounding errors into account  <a href="#a418bebacbef432fcf909e8f3d9b8368d"></a><br/></dl><li>template&lt;class T &gt; T <a class="el" href="namespaceirr_1_1core.html#ae2e6a5729b911d26565b508e8b8dae91">irr::core::lerp</a> (const T &amp;a, const T &amp;b, const f32 t)
<li>template&lt;class T &gt; const T &amp; <a class="el" href="namespaceirr_1_1core.html#afca1ce7ac54e0c31a9047947f4c7319b">irr::core::max_</a> (const T &amp;a, const T &amp;b)
<dl class="el"><dd class="mdescRight">returns maximum of two values. Own implementation to get rid of the STL (VS6 problems)  <a href="#afca1ce7ac54e0c31a9047947f4c7319b"></a><br/></dl><li>template&lt;class T &gt; const T &amp; <a class="el" href="namespaceirr_1_1core.html#ae279a231923e0c251ebfd171f03e689c">irr::core::max_</a> (const T &amp;a, const T &amp;b, const T &amp;c)
<dl class="el"><dd class="mdescRight">returns maximum of three values. Own implementation to get rid of the STL (VS6 problems)  <a href="#ae279a231923e0c251ebfd171f03e689c"></a><br/></dl><li>template&lt;class T &gt; const T &amp; <a class="el" href="namespaceirr_1_1core.html#a9d34bfdbbe9c136b01ae04974572bc11">irr::core::min_</a> (const T &amp;a, const T &amp;b)
<dl class="el"><dd class="mdescRight">returns minimum of two values. Own implementation to get rid of the STL (VS6 problems)  <a href="#a9d34bfdbbe9c136b01ae04974572bc11"></a><br/></dl><li>template&lt;class T &gt; const T &amp; <a class="el" href="namespaceirr_1_1core.html#a620f62b5ab8b484c16c0236ca7d65d33">irr::core::min_</a> (const T &amp;a, const T &amp;b, const T &amp;c)
<dl class="el"><dd class="mdescRight">returns minimum of three values. Own implementation to get rid of the STL (VS6 problems)  <a href="#a620f62b5ab8b484c16c0236ca7d65d33"></a><br/></dl><li>f32 <a class="el" href="namespaceirr_1_1core.html#a8deb22ad77fb8ead3f6683bbf9ad3f67">irr::core::radToDeg</a> (f32 radians)
<dl class="el"><dd class="mdescRight">Utility function to convert a radian value to degrees.  <a href="#a8deb22ad77fb8ead3f6683bbf9ad3f67"></a><br/></dl><li>f64 <a class="el" href="namespaceirr_1_1core.html#aab39939b1518daee0967c368a3bf924a">irr::core::radToDeg</a> (f64 radians)
<dl class="el"><dd class="mdescRight">Utility function to convert a radian value to degrees.  <a href="#aab39939b1518daee0967c368a3bf924a"></a><br/></dl><li>REALINLINE f32 <a class="el" href="namespaceirr_1_1core.html#aa01390f49052dfe07e16ee6c5233f4eb">irr::core::reciprocal</a> (const f32 f)
<li>REALINLINE f64 <a class="el" href="namespaceirr_1_1core.html#ac4402e2ec5b151212168736b8cfdd587">irr::core::reciprocal</a> (const f64 f)
<li>REALINLINE f32 <a class="el" href="namespaceirr_1_1core.html#ab5de17006aac4618e43d5f816ffc97c9">irr::core::reciprocal_approxim</a> (const f32 f)
<li>REALINLINE f64 <a class="el" href="namespaceirr_1_1core.html#adaef309f12c2a3386e94610e24f2bfa7">irr::core::reciprocal_squareroot</a> (const f64 x)
<li>REALINLINE f32 <a class="el" href="namespaceirr_1_1core.html#a42eb747bb19d6ca2cb9d8977eb402c72">irr::core::reciprocal_squareroot</a> (const f32 f)
<li>REALINLINE s32 <a class="el" href="namespaceirr_1_1core.html#a21c37238a7754b48ff18c486202a1e4b">irr::core::reciprocal_squareroot</a> (const s32 x)
<li>REALINLINE s32 <a class="el" href="namespaceirr_1_1core.html#ae46f57f03e9033c57c180fbe83b04cf2">irr::core::round32</a> (f32 x)
<li>f32 <a class="el" href="namespaceirr_1_1core.html#a894a901069c34298987761c5f3d74f1f">irr::core::round_</a> (f32 x)
<li>s32 <a class="el" href="namespaceirr_1_1core.html#aa7828c932a36c62a67fd0f2b972d8b21">irr::core::s32_clamp</a> (s32 value, s32 low, s32 high)
<li>s32 <a class="el" href="namespaceirr_1_1core.html#a3adbc0ee7f78051eb2a35511fe90bd2d">irr::core::s32_max</a> (s32 a, s32 b)
<li>s32 <a class="el" href="namespaceirr_1_1core.html#aa0d9ebcfeca532643e76cf58b98daca1">irr::core::s32_min</a> (s32 a, s32 b)
<li>REALINLINE void <a class="el" href="namespaceirr_1_1core.html#a628051738e8873b91b064e6014024f41">irr::core::setbit_cond</a> (u32 &amp;state, s32 condition, u32 mask)
<li>REALINLINE f32 <a class="el" href="namespaceirr_1_1core.html#af2f378cc34a19f5da6fe1d4961646d1d">irr::core::squareroot</a> (const f32 f)
<li>REALINLINE f64 <a class="el" href="namespaceirr_1_1core.html#ad4378f076bf251c05e543ce888da8f48">irr::core::squareroot</a> (const f64 f)
<li>REALINLINE s32 <a class="el" href="namespaceirr_1_1core.html#a6943186698de9d2ff47ce03fbe025230">irr::core::squareroot</a> (const s32 f)
<li>REALINLINE s64 <a class="el" href="namespaceirr_1_1core.html#a9a79fc4c36183e75d70c740b2b9f1865">irr::core::squareroot</a> (const s64 f)
<li>template&lt;class T1 , class T2 &gt; void <a class="el" href="namespaceirr_1_1core.html#ab565e5d5112b21ff9b96a0ca0c9b89ad">irr::core::swap</a> (T1 &amp;a, T2 &amp;b)
<dl class="el"><dd class="mdescRight">swaps the content of the passed parameters  <a href="#ab565e5d5112b21ff9b96a0ca0c9b89ad"></a><br/></dl></ul>
<h2><a name="var-members"></a>
Variables</h2>
<ul>
<li>const f32 <a class="el" href="namespaceirr_1_1core.html#a4b91e69e51a2e374aec940cba3869028">irr::core::DEGTORAD</a> = PI / 180.0f
<dl class="el"><dd class="mdescRight">32bit Constant for converting from degrees to radians  <a href="#a4b91e69e51a2e374aec940cba3869028"></a><br/></dl><li>const f64 <a class="el" href="namespaceirr_1_1core.html#a8e21b5969c8292857f7c9c5dcfd61c35">irr::core::DEGTORAD64</a> = PI64 / 180.0
<dl class="el"><dd class="mdescRight">64bit constant for converting from degrees to radians (formally known as GRAD_PI2)  <a href="#a8e21b5969c8292857f7c9c5dcfd61c35"></a><br/></dl><li>const f32 <a class="el" href="namespaceirr_1_1core.html#abeab884c4376c5740f6d916356e9baa3">irr::core::HALF_PI</a> = PI/2.0f
<dl class="el"><dd class="mdescRight">Constant for half of PI.  <a href="#abeab884c4376c5740f6d916356e9baa3"></a><br/></dl><li>const f32 <a class="el" href="namespaceirr_1_1core.html#a26d877e2caf3e6f31c298a0417a0707e">irr::core::PI</a> = 3.14159265359f
<dl class="el"><dd class="mdescRight">Constant for PI.  <a href="#a26d877e2caf3e6f31c298a0417a0707e"></a><br/></dl><li>const f64 <a class="el" href="namespaceirr_1_1core.html#a166af519140dc00cbd88684e835086f8">irr::core::PI64</a> = 3.1415926535897932384626433832795028841971693993751
<dl class="el"><dd class="mdescRight">Constant for 64bit PI.  <a href="#a166af519140dc00cbd88684e835086f8"></a><br/></dl><li>const f32 <a class="el" href="namespaceirr_1_1core.html#ae3a530e0ef661960b7af89f07d817bd5">irr::core::RADTODEG</a> = 180.0f / PI
<dl class="el"><dd class="mdescRight">32bit constant for converting from radians to degrees (formally known as GRAD_PI)  <a href="#ae3a530e0ef661960b7af89f07d817bd5"></a><br/></dl><li>const f64 <a class="el" href="namespaceirr_1_1core.html#ae7afeb48af12f5f5130cd179a644ec58">irr::core::RADTODEG64</a> = 180.0 / PI64
<dl class="el"><dd class="mdescRight">64bit constant for converting from radians to degrees  <a href="#ae7afeb48af12f5f5130cd179a644ec58"></a><br/></dl><li>const f32 <a class="el" href="namespaceirr_1_1core.html#ac97bfaa5b44703e61c23c91b88f3ec3a">irr::core::RECIPROCAL_PI</a> = 1.0f/PI
<dl class="el"><dd class="mdescRight">Constant for reciprocal of PI.  <a href="#ac97bfaa5b44703e61c23c91b88f3ec3a"></a><br/></dl><li>const f64 <a class="el" href="namespaceirr_1_1core.html#ad3a2ddd6d772edb4d663d73fae5434e3">irr::core::RECIPROCAL_PI64</a> = 1.0/PI64
<dl class="el"><dd class="mdescRight">Constant for 64bit reciprocal of PI.  <a href="#ad3a2ddd6d772edb4d663d73fae5434e3"></a><br/></dl><li>const f32 <a class="el" href="namespaceirr_1_1core.html#a9514dd34463a30102ef8836915cf9c4c">irr::core::ROUNDING_ERROR_f32</a> = 0.000001f
<li>const f64 <a class="el" href="namespaceirr_1_1core.html#a7b314c22d6804639cbcbce5231724f0b">irr::core::ROUNDING_ERROR_f64</a> = 0.00000001
<li>const s32 <a class="el" href="namespaceirr_1_1core.html#aac9f99b6a999bdf25fec402c59e8342a">irr::core::ROUNDING_ERROR_S32</a> = 0
<dl class="el"><dd class="mdescRight">Rounding error constant often used when comparing f32 values.  <a href="#aac9f99b6a999bdf25fec402c59e8342a"></a><br/></dl><li>const s64 <a class="el" href="namespaceirr_1_1core.html#acc1ea39594c72f97ff196e97c14ed6f3">irr::core::ROUNDING_ERROR_S64</a> = 0
</ul>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="aa854d8430e0acc31adb1ddb3647f6534"></a><!-- doxytag: member="irrMath.h::AIR" ref="aa854d8430e0acc31adb1ddb3647f6534" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AIR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(IR(x)&amp;0x7fffffff)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Absolute integer representation of a floating-point value. </p>

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00357">357</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab4092d1d22af18e03372117e347b633c"></a><!-- doxytag: member="irrMath.h::F32_A_GREATER_B" ref="ab4092d1d22af18e03372117e347b633c" args="(a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_A_GREATER_B</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((a) &gt; (b))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00391">391</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="afc4f1a86cb2a79c560b29ee5edd0f94d"></a><!-- doxytag: member="irrMath.h::F32_AS_S32" ref="afc4f1a86cb2a79c560b29ee5edd0f94d" args="(f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_AS_S32</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">f</td><td>)</td>
          <td>&#160;&#160;&#160;(*((s32 *) &amp;(f)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00339">339</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="afdeb4b30296d2b1dccec72427bdb39f2"></a><!-- doxytag: member="irrMath.h::F32_AS_U32" ref="afdeb4b30296d2b1dccec72427bdb39f2" args="(f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_AS_U32</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">f</td><td>)</td>
          <td>&#160;&#160;&#160;(*((u32 *) &amp;(f)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00340">340</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab5498fea750901e87dfeca4e27425f16"></a><!-- doxytag: member="irrMath.h::F32_AS_U32_POINTER" ref="ab5498fea750901e87dfeca4e27425f16" args="(f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_AS_U32_POINTER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">f</td><td>)</td>
          <td>&#160;&#160;&#160;( ((u32 *) &amp;(f)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00341">341</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3c82a09fb606a67c19514b534d364d6c"></a><!-- doxytag: member="irrMath.h::F32_EQUAL_0" ref="a3c82a09fb606a67c19514b534d364d6c" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_EQUAL_0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;((n) == 0.0f)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00390">390</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae907baf637203996fb3187581c2def80"></a><!-- doxytag: member="irrMath.h::F32_EQUAL_1" ref="ae907baf637203996fb3187581c2def80" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_EQUAL_1</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;((n) == 1.0f)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00389">389</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a94abc82f2a2794c8331c9dad9a06958b"></a><!-- doxytag: member="irrMath.h::F32_EXPON_MANTISSA" ref="a94abc82f2a2794c8331c9dad9a06958b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_EXPON_MANTISSA&#160;&#160;&#160;0x7FFFFFFFU</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00346">346</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2fdc9e94ce29e1866ddf64e5903d43a1"></a><!-- doxytag: member="irrMath.h::F32_GREATER_0" ref="a2fdc9e94ce29e1866ddf64e5903d43a1" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_GREATER_0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;((n) &gt;  0.0f)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00387">387</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a407afe61680cc405bbe04922d36423af"></a><!-- doxytag: member="irrMath.h::F32_GREATER_EQUAL_0" ref="a407afe61680cc405bbe04922d36423af" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_GREATER_EQUAL_0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;((n) &gt;= 0.0f)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00388">388</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa86a7d03858f88ebbf9e36592583ced6"></a><!-- doxytag: member="irrMath.h::F32_LOWER_0" ref="aa86a7d03858f88ebbf9e36592583ced6" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_LOWER_0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;((n) &lt;  0.0f)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00385">385</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a26bc42a9cc1fc775bc588052c32ff9a0"></a><!-- doxytag: member="irrMath.h::F32_LOWER_EQUAL_0" ref="a26bc42a9cc1fc775bc588052c32ff9a0" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_LOWER_EQUAL_0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;((n) &lt;= 0.0f)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00386">386</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

<p>Referenced by <a class="el" href="triangle3d_8h_source.html#l00210">irr::core::triangle3d&lt; T &gt;::isFrontFacing()</a>, and <a class="el" href="plane3d_8h_source.html#l00214">irr::core::plane3d&lt; f32 &gt;::isFrontFacing()</a>.</p>

</div>
</div>
<a class="anchor" id="a58566d4b084b3c9740b3215cf7a607bb"></a><!-- doxytag: member="irrMath.h::F32_SIGN_BIT" ref="a58566d4b084b3c9740b3215cf7a607bb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_SIGN_BIT&#160;&#160;&#160;0x80000000U</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00345">345</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="aff2ace8fbd4b2ee6833ae0ed8dd9469a"></a><!-- doxytag: member="irrMath.h::F32_VALUE_0" ref="aff2ace8fbd4b2ee6833ae0ed8dd9469a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_VALUE_0&#160;&#160;&#160;0x00000000</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00343">343</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a93465b810662025b38f42244b100fc2e"></a><!-- doxytag: member="irrMath.h::F32_VALUE_1" ref="a93465b810662025b38f42244b100fc2e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define F32_VALUE_1&#160;&#160;&#160;0x3f800000</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00344">344</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h_source.html#l01067">irr::core::CMatrix4&lt; T &gt;::isIdentity_integer_base()</a>.</p>

</div>
</div>
<a class="anchor" id="a7fbf1534f9e0f0bfdb86fb928902474c"></a><!-- doxytag: member="irrMath.h::FLT_MAX" ref="a7fbf1534f9e0f0bfdb86fb928902474c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FLT_MAX&#160;&#160;&#160;3.402823466E+38F</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00031">31</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

<p>Referenced by <a class="el" href="fast__atof_8h_source.html#l00258">irr::core::strtof10()</a>.</p>

</div>
</div>
<a class="anchor" id="a890322b63a2fab56b8ff916c08368df6"></a><!-- doxytag: member="irrMath.h::FLT_MIN" ref="a890322b63a2fab56b8ff916c08368df6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FLT_MIN&#160;&#160;&#160;1.17549435e-38F</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00035">35</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h_source.html#l01309">irr::core::CMatrix4&lt; T &gt;::getInverse()</a>.</p>

</div>
</div>
<a class="anchor" id="a3ec4980c07f6b510c61230356e014d24"></a><!-- doxytag: member="irrMath.h::IEEE_1_0" ref="a3ec4980c07f6b510c61230356e014d24" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IEEE_1_0&#160;&#160;&#160;0x3f800000</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>integer representation of 1.0 </p>

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00368">368</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2b311316554140ac181c31d86f4f3786"></a><!-- doxytag: member="irrMath.h::IEEE_255_0" ref="a2b311316554140ac181c31d86f4f3786" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IEEE_255_0&#160;&#160;&#160;0x437f0000</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>integer representation of 255.0 </p>

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00370">370</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3695e51e0a187a6c49684ba3206b0d0a"></a><!-- doxytag: member="irrMath.h::REALINLINE" ref="a3695e51e0a187a6c49684ba3206b0d0a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define REALINLINE&#160;&#160;&#160;inline</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="irr_math_8h_source.html#l00399">399</a> of file <a class="el" href="irr_math_8h_source.html">irrMath.h</a>.</p>

</div>
</div>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="irr_math_8h.html">irrMath.h</a>      </li>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>


    <li class="footer">
<a href="http://irrlicht.sourceforge.net" target="_blank">Irrlicht 
Engine</a> Documentation &copy; 2003-2012 by Nikolaus Gebhardt. Generated on Sat Jul 9 2016 18:18:24 for Irrlicht 3D Engine by
<a href="http://www.doxygen.org/index.html" target="_blank">Doxygen</a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
